<?php
class Funcionario extends AppModel {
	public $displayField = 'nome';

    public $validate = array(
		'nome' => array(
            'rule' => array('notEmpty'),
            'message' => 'O campo nome do funcionário é obrigatório'
		),
		'data_nascimento' => array(
			'rule' => 'date',
			'message' => 'O campo data de nascimento deve ser uma data válida'
		),
		'sexo' => array(
            'rule' => array('notEmpty'),
            'message' => 'O campo sexo é obrigatório'
		),
		'classe_viagem' => array(
            'rule' => array('notEmpty'),
            'message' => 'O campo classe viagem é obrigatório'
		),
		'tipo_assento' => array(
            'rule' => array('notEmpty'),
            'message' => 'O campo tipo de assento é obrigatório'
		),
        'nacionalidade_id' => array(
            'rule' => array('checkBelongsTo', 'Nacionalidade'),
            'message' => 'O campo nacionalidade é obrigatório'
        ),
		'estado_civil' => array(
            'rule' => array('notEmpty'),
            'message' => 'O campo estado cívil é obrigatório'
		),
        'email' => array(
			'required' => array(
                'rule' => array('notEmpty'),
                'message' => 'O campo email é obrigatório'
            ),
            'email' => array(
                'rule' => 'email',
				'message' => 'O campo email é inválido'
            ),
			'unique' => array(
				'rule' => 'isUnique',
				'message' => 'O email já existe'
			)
		),
		'data_admissao' => array(
			'rule' => 'date',
			'message' => 'O campo data de admissão deve ser uma data válida'
		),
		'data_primeira_chegada' => array(
			'rule' => 'date',
			'message' => 'O campo data de primeira chegada deve ser uma data válida'
		),
        'pais_id' => array(
            'rule' => array('checkBelongsTo', 'Pais'),
            'message' => 'O campo pais é obrigatório'
        ),
        'profissao_id' => array(
            'rule' => array('checkBelongsTo', 'Profissao'),
            'message' => 'O campo profissão é obrigatório'
        ),
        'area_id' => array(
            'rule' => array('checkBelongsTo', 'Area'),
            'message' => 'O campo área é obrigatório'
        ),
        'projeto_id' => array(
            'rule' => array('checkBelongsTo', 'Projeto'),
            'message' => 'O campo projeto é obrigatório'
        ),
        'grupo_id' => array(
            'rule' => array('notEmpty'),
            'message' => 'O campo grupo é obrigatório'
        ),
        'funcao_id' => array(
            'rule' => array('checkBelongsTo', 'Funcao'),
            'message' => 'O campo função é obrigatório'
        ),
		'photo' => array(
			'isUnderPhpSizeLimit' => array(
				'rule' => 'isUnderPhpSizeLimit',
				'message' => 'O arquivo excede o limite de tamanho de arquivo de upload'
			),
			'isUnderFormSizeLimit' => array(
				'rule' => 'isUnderFormSizeLimit',
				'message' => 'O arquivo excede o limite de tamanho de arquivo de upload'
			),
			'isValidExtension' => array(
				'rule' => array('isValidExtension', array('gif', 'jpg', 'png'), false),
				'message' => 'Arquivo não tem uma extensão gif, jpg ou png'
			)
		)
    );

	public $belongsTo = array(
        'Area' => array(
            'className' => 'Area',
            'foreignKey' => 'area_id'
        ),
		'Grupo' => array(
            'className' => 'Grupo',
            'foreignKey' => 'grupo_id'
        ),
		'Funcao' => array(
            'className' => 'Funcao',
            'foreignKey' => 'funcao_id'
        ),
		'Projeto' => array(
            'className' => 'Projeto',
            'foreignKey' => 'projeto_id'
        ),
		'Profissao' => array(
            'className' => 'Profissao',
            'foreignKey' => 'profissao_id'
        ),
		'Nacionalidade' => array(
            'className' => 'Nacionalidade',
            'foreignKey' => 'nacionalidade_id',
			'order' => 'Nacionalidade.nome ASC'
        ),
		'Pais' => array(
            'className' => 'Pais',
            'foreignKey' => 'pais_id',
			'order' => 'Pais.nome ASC'
        ),
		'Companhia' => array(
            'className' => 'Companhia',
            'foreignKey' => 'companhia_id',
			'order' => 'Companhia.nome ASC'
        )
    );

    public $actsAs = array(
        'Upload.Upload' => array(
            'photo' => array(
                'fields' => array(
                    'dir' => 'photo_dir'
                )
            )
        )
    );

	public function getSexos(){
		return Array("m" => "Masculino", "f" => "Feminino");
	}

	public function getEstadosCivis(){
		return Array(
			"casado" => "Casado",
			"solteiro" => "Solteiro",
			"viuvo" => "Viúvo",
			"desquitado" => "Desquitado",
			"divorciado" => "Divorciado",
			"outros" => "Outros"
		);
	}

	public function getClassesViagem(){
		return Array(
			"economica" => "Econômica",
			"executiva" => "Executiva",
			"primeira_classe" => "Primeira Classe"
		);
	}

	public function getTiposAssento(){
		return Array(
			"corredor" => "Corredor",
			"janela" => "Janela"
		);
	}
}